package edu.nf.aop;

import java.lang.reflect.Method;

/**
 * @author wangl
 * @date 2021/9/24
 * 回调上下文
 */
public interface JoinPoint {

	/**
     * 获取目标对象的所有参数
	 * @return 方法参数对象
     */
	Object[] getArguments();
	
	/**
	 * 获取当前调用的方法
	 * @return 目标方法
	 */
	Method getMethod();

	/**
	 * 执行通知栈，调用目标方法
	 * @return 目标方法返回值
	 * @throws Throwable 目标方法产生的异常
	 */
	Object proceed() throws Throwable;
}
